package com.free.utils;


import com.sun.jndi.toolkit.url.Uri;
import org.apache.commons.codec.binary.Base64;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

/**
 * <p>
 * 功能概述:编码器
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
public class EncoderUtils {

    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/

    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    /***
     * 字节数组转成字符串
     * @param encodeArray
     * @return
     */
    public String base64Encode(byte[] encodeArray)
    {
        return Base64.encodeBase64String(encodeArray);
    }

    /**
     * 字符串转成字节数组
     * @param decodeString
     * @return
     */
    public byte[] base64Decode(String decodeString)
    {
        return Base64.decodeBase64(decodeString);
    }

    /**
     * URL编码
     * @param urlString
     * @return
     * @throws UnsupportedEncodingException
     */
    public String urlEncode(String urlString) throws UnsupportedEncodingException {
        return URLEncoder.encode(urlString,CharsetUtils.UTF8);
    }

    /**
     * URL解码
     * @param urlString
     * @return
     * @throws UnsupportedEncodingException
     */
    public String urlDecode(String urlString) throws UnsupportedEncodingException {
        return URLDecoder.decode(urlString, CharsetUtils.UTF8);
    }

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/

}
